package igor.lakienko.ru.generation.quotes.dto;

import igor.lakienko.ru.generation.quotes.enums.Cryptocurrency;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.Value;
import lombok.experimental.SuperBuilder;

import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * Класс дто для криптовалюты.
 */
@Value
@ToString(callSuper = true)
@SuperBuilder(toBuilder = true)
@EqualsAndHashCode(callSuper = true)
public class CryptocurrencyDto extends MessageEventDto {

    /**
     * Название криптовалюты.
     */
    Cryptocurrency cryptocurrency;

    /**
     * Полное название криптовалюты.
     */
    String fullCryptocurrencyName;

    /**
     * Цена покупки криптовалюты.
     */
    BigDecimal bid;

    /**
     * Цена продажи криптовалюты.
     */
    BigDecimal offer;

    /**
     * Суммарная рыночная стоимость криптовалюты.
     */
    BigDecimal marketCapital;

    /**
     * Цена за единицу криптовалюты.
     */
    float price;

    /**
     * Количество криптовалюты.
     */
    BigInteger cryptocurrencyVolume;

    /**
     * Прибыль компании за год.
     */
    BigInteger totalInCirculation;

    /**
     * Рекомендация аналитиков(покупать, продавать или держать).
     */
    String recommendationAnalysts;

    /**
     * Волатильность криптовалюты за месяц.
     */
    float monthlyVolatility;

    /**
     * рейтинг криптовалюты.
     */
    int ratingCryptocurrency;
}
